package com.example.cardgame.model

// 定义 Card 类，表示一张卡片
class Card(private var suit: String, private var rank: String, var isChosen: Boolean = false, var isMatched: Boolean = false) {
    // 伴生对象，包含一些静态常量
    companion object {
        // 有效的牌面值
        val rankStrings = arrayOf("A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K")
        // 有效的花色
        val validSuits = arrayOf("♥", "♦", "♠", "♣")
    }

    // 重写 toString 方法，返回卡片的花色和牌面值
    override fun toString(): String {
        return suit + rank
    }

    // 匹配方法，比较当前卡片与其他卡片的花色和牌面值
    fun match(otherCards: Array<Card>): Int {
        var score = 0
        if (otherCards.size == 1) {
            val otherCard = otherCards[0]
            if (otherCard.rank == rank) {// 如果牌面值相同，得分为 4
                score = 4
            } else if (otherCard.suit == suit) {// 如果花色相同，得分为 1
                score = 1
            }
        }
        return score
    }
}